package com.group.www.interfaces;

import com.github.pagehelper.PageInfo;
import com.group.www.pojo.GoodsInfo;

public interface GoodsInfoServiceI extends BasicOper<GoodsInfo>{

    /**
     * 添加商品信息的方法，参数为商品的实体类信息，返回boolean值，判断是否添加成功，添加商品信息成功需要添加一条入库记录
     * 添加入库记录要获取当前入库时间
     * @param entity 商品信息的实体类参数，
     * @return 返回值为boolean类型，判断是否添加商品信息成功
     */
    boolean add(GoodsInfo entity);


    /**
     * 修改商品信息的方法，参数为商品类型的实体类信息，根据实体类中的id为条件修改其他的变量，返回值为boolean类型值，
     * 判断是否修改商品信息成功
     * @param entity 参数为商品类型的实体类，据实体类中的id为条件修改其他的变量
     * @return 返回值为Boolean类型值，判断是否修改成功
     */
    boolean update(GoodsInfo entity);


    /**
     * 删除单个商品信息的方法，根据有的商品条件删除，返回值为boolean类型值，判断是否删除成功
     * @param entity 参数为商品类型的实体类，根据实体类中有的参数进行删除
     * @return 返回值为boolean类型值，判断是否删除成功
     */
    boolean delete(GoodsInfo entity);


    /**
     * 删除多个商品信息的方法，参数为商品id的字符串，返回boolean值判断是否删除成功
     * @param ids 用“，”分割起来的商品id的字符串，
     * @return 返回boolean类型值，判断是否删除成功
     */
    boolean deleteMany(String ids);


    /**
     * 分页查询品牌商的商品信息的方法，有五个参数，返回一个包含数据的分页对象
     * @param brandid 品牌商的id，此条件用于查询具体的品牌商的商品
     * @param pageIndex 分页模型的当前页，用于记录跳转的页数
     * @param pageSize 分页模型的每页记录数，用于记录煤业所查询的最大条数
     * @param names 根据商品名称进行模糊查询的条件，当为空时查询该品牌商的全部信息
     * @param types 根据商品类型信息查询商品信息的条件，根据商品类型的名称来进行模糊查询，当为空时表示查询所有类型的商品信息
     * @return 返回一个分页对象，包含查询的当前页数据
     */
    PageInfo<GoodsInfo> queryAll(int brandid, int pageIndex, int pageSize, Object names, Object types);


    /**
     * 根据商品信息的id查询一个商品信息的详细信息，参数为int类型的桉树，表示商品编号，返回一个上屏信息的实体类
     * @param id int类型的参数，表示根据商品的id编号查询
     * @return 返回一个商品的实体类型，进行回显
     */
    GoodsInfo queryById(int id);


    /**
     * 修改商品的上架状态的方法，参数id为商品信息的id，参数issale为商品的上架状态，0为未上架，1为上架m返回Boolean类型值，
     * 表示是否修改成功
     * @param id 商品的id，为条件参数
     * @param issale 商品的上架状态，为修改的变量
     * @return 返回Boolean类型值，判断是否修改成功
     */
    boolean updateSaleById(int id, int issale);

}
